package cn.bdqn.mallmgr.dao;

import cn.bdqn.mallmgr.pojo.Product;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author
 * @create 2022-07-13 9:41
 */
@Mapper
public interface ProductMapper {
    /**
     * 根据类别别号获取商品
     *
     * @param categoryId 类别编号
     * @return java.util.List<cn.bdqn.mallmgr.pojo.Product>
     */
    List<Product> getProductsByCategory(@Param("categoryId") Integer categoryId);

    /**
     * 商品查询
     *
     * @param categoryId  类别id
     * @param productName 查询商品名称
     * @param sort_key    排序字段，按时间createTime，按销量dealCount，按价格price
     * @param sort_type   排序规则，0升序1降序
     * @param startIndex  起始索引
     * @param size        查询行数
     * @return java.util.List<cn.bdqn.mallmgr.pojo.Product>
     */
    List<Product> getPageProducts(@Param("categoryId") Integer categoryId,
                                  @Param("productName") String productName,
                                  @Param("sort_key") String sort_key,
                                  @Param("sort_type") Integer sort_type,
                                  @Param("startIndex") Integer startIndex,
                                  @Param("size") Integer size);

    /**
     * 查询的总行数
     *
     * @param categoryId  类别id
     * @param productName 查询商品名称
     * @return java.lang.Integer
     */
    Integer getPageProductsCounts(@Param("categoryId") Integer categoryId,
                                  @Param("productName") String productName);

    /**
     * 根据id查询商品详情
     *
     * @param id id
     * @return cn.bdqn.mallmgr.pojo.Product
     */
    Product getProductById(@Param("id") Integer id);
}
